﻿/**
    1. 访问修饰符
    2. 泛型

 */
class PP {
    public name: string;
    public age: number;
}

//泛型
class Calc<T>{
    a: T;
    b: T;



    //constructor(a: T, b: T) {
    //    this.a = a;
    //    this.b = b;
    //}

    sh(c: T) {

    }
}

// 没有声明 类型，那么就是 any 类型
var obj = new Calc();
obj.a = 100;
obj.b = "abc";

//泛型
var obj2 = new Calc<number>();
obj2.a = 100;
obj2.b = 200;
//obj2.b = "abc"; //编印报错

//简写 到 底层 的写法：
//var arr = [12, 10, 20];
//var arr: number[] = [12, 10, 20];
//var arr: Array<number> = new Array<number>();


